package com.dyw.Day07;

/**
 *
 * @author Devil
 * @create 2022-01-14-23:28
 */

import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

/**
 * 有效的字母异位词
 *
 *
 * 注意：若 s 和 t 中每个字符出现的次数都相同，则称 s 和 t 互为字母异位词。\
 *
 *
 *
 * 把两个字符串转化为字符数组，然后再对这两个字符数组进行排序，因为相同的字符在排序之后肯定是挨着的，最后再比较这两个排序后的数组的元素是否相同。
 * @author Devil
 */
public class Demo07 {
    public static void main(String[] args) {
        System.out.println(new Demo07().isAnagram("rat", "nagaram"));
    }
//    public boolean isAnagram(String s, String t) {
//        HashMap<Character,Integer> map1 = new HashMap<>();
//        HashMap<Character,Integer> map2 = new HashMap<>();
//        boolean flag = true;
//        String str = null;
//        if(s.length()<t.length()){
//            str = s;
//            s = t;
//            t = str;
//        }
//        for (int i = 0; i < s.length(); i++) {
//            map1.put(s.charAt(i),map1.getOrDefault(s.charAt(i),0)+1);
//        }
//        for (int i = 0; i < t.length(); i++) {
//            map2.put(t.charAt(i),map2.getOrDefault(t.charAt(i),0)+1);
//        }
//
//
//        Iterator<Map.Entry<Character,Integer>> iter = map1.entrySet().iterator();
//        while(iter.hasNext()){
//            Map.Entry<Character, Integer> next = iter.next();
//            if(next.getValue()!=map2.get(next.getKey())){
//                flag = false;
//                break;
//            }
//        }
//        return flag;
//    }

    public boolean isAnagram(String s, String t) {
        char [] charArray1 = s.toCharArray();
        char [] charArray2 = t.toCharArray();
        Arrays.sort(charArray1);
        Arrays.sort(charArray2);

        return Arrays.equals(charArray1,charArray2);
    }
}
